package competences;

import data.ECaracteristique;

public abstract class Competence {

	protected ECaracteristique traitCle;
	private int rang;
	private int bonus;
	protected ECompetence synergie; //Mettre la synergie dans la competence ou il faut 5. La valeur de synergie est la competence ou ca rajoute 2.
	//TODO : prevoir le cas de plusieurs synergies (exemple : Acrobatie -> saut et equilibre)
	public Competence() {
		this.rang = 0;
		this.bonus = 0;
	}

	public void addRang() {
		this.rang++;
	}

	public void addBonus() {
		this.bonus++;
	}

	public int getRang() {
		return this.rang;
	}

	public int getValeur(int modTrait) {
		return modTrait+rang+bonus;
	}

	public ECaracteristique getTraitCle() {
		return traitCle;
	}
	
	public ECompetence getSynergie () {
		return synergie;
	}
	
	public String toString (int modTrait) {
		String res = this.getClass().getSimpleName();
		int i;
		for(i=0; i<22-this.getClass().getSimpleName().length(); i++)
			res += " ";
		res += ": " + getValeur(modTrait) + " = " + modTrait + " + " + rang + " + " + bonus;
		return res;
	}
}
